Batch Script একটি শক্তিশালী টুল যা আপনি Windows কমান্ড লাইন পরিবেশে ব্যবহার করতে পারেন। তবে, কখনও কখনও আপনার Batch Script এর মধ্যে external commands বা বাহ্যিক কমান্ডের প্রয়োজন হতে পারে, যা Batch Script এর কার্যক্ষমতা বা ক্ষমতাকে বাড়িয়ে তোলে। এই বাহ্যিক কমান্ডগুলোর মধ্যে থাকতে পারে অন্যান্য সফটওয়্যার বা টুলস যেমন curl, wget, PowerShell, Ping, System tools ইত্যাদি।
বাহ্যিক কমান্ড ইন্টিগ্রেট করে আপনি Batch Script এর মাধ্যমে আরও জটিল বা বিশেষ কাজ সম্পন্ন করতে পারেন, যা শুধুমাত্র বিল্ট-ইন Batch কমান্ড দিয়ে সম্ভব নয়।
External Commands কী?
বাহ্যিক কমান্ডগুলো হল সিস্টেমের বাইরের অ্যাপ্লিকেশন বা কমান্ড যেগুলি সিস্টেমের অংশ হিসেবে কাজ করে কিন্তু CMD.exe বা batch scripting এর আংশিক অংশ নয়। এই কমান্ডগুলো আপনাকে সাধারণ Batch Script এর কাজের মধ্যে বিশেষ টাস্ক সম্পন্ন করতে সাহায্য করে।
External Commands ব্যবহার করার মূল পদ্ধতি:
External Commands ব্যবহার করতে, আপনাকে কেবল কমান্ড লাইনে সেই নির্দিষ্ট প্রোগ্রাম বা টুল চালাতে হয়, এবং Batch Script এর মধ্যে call, start, বা সরাসরি কমান্ড দিয়ে এটি ইন্টিগ্রেট করা যায়।
External Commands এর উদাহরণ:
- PowerShell কমান্ড ইন্টিগ্রেশন
PowerShell একটি শক্তিশালী টুল যা Windows এ স্ক্রিপ্টিং এবং অটোমেশন কাজ করতে ব্যবহৃত হয়। আপনি Batch Script এর মধ্যে PowerShell কমান্ড ব্যবহার করতে পারেন। এটি করার জন্য, PowerShell কমান্ডকে powershell দিয়ে কল করতে হয়।
উদাহরণ: PowerShell স্ক্রিপ্ট চালানো
powershell -Command "Write-Host 'Hello from PowerShell'"
এই কমান্ডটি PowerShell এর মধ্যে Write-Host কমান্ড চালাবে এবং স্ক্রীনে "Hello from PowerShell" প্রদর্শন করবে।
- Ping কমান্ড
Ping কমান্ডটি একটি সাধারণ external command যা নেটওয়ার্কের সংযোগ যাচাই করতে ব্যবহৃত হয়। Batch Script এর মধ্যে এটি ব্যবহার করা খুবই সহজ।
উদাহরণ: একটি IP Address পিং করা
ping 8.8.8.8
এটি Google এর DNS সার্ভার (8.8.8.8) পিং করবে এবং সংযোগের অবস্থা দেখাবে।
- curl বা wget
curl এবং wget দুটি জনপ্রিয় কমান্ড যা HTTP বা FTP প্রোটোকল ব্যবহার করে ওয়েব সার্ভিস থেকে ডেটা ডাউনলোড বা আপলোড করতে সাহায্য করে। এগুলো Batch Script এর মধ্যে খুব সহজে ব্যবহার করা যায়, বিশেষত যখন আপনাকে কোনো ওয়েব রিসোর্স এক্সেস করতে হয়।
উদাহরণ: curl দিয়ে ওয়েব পেজ ডাউনলোড করা
curl -O https://example.com/file.txt
এটি example.com ওয়েবসাইট থেকে file.txt ফাইলটি ডাউনলোড করবে।
- System Tools যেমন Tasklist বা Taskkill
Windows এ অনেক বিল্ট-ইন system tools রয়েছে যেগুলি আপনি Batch Script এর মধ্যে ব্যবহার করতে পারেন, যেমন tasklist এবং taskkill।
উদাহরণ: Tasklist ব্যবহার করে চলমান প্রক্রিয়া দেখা
tasklist
এটি আপনার কম্পিউটারে চলমান সব প্রক্রিয়ার তালিকা প্রদর্শন করবে।
উদাহরণ: Taskkill ব্যবহার করে একটি প্রক্রিয়া বন্ধ করা
taskkill /IM notepad.exe
এটি notepad.exe প্রক্রিয়াটি বন্ধ করে দেবে।
- 7zip বা WinRAR (Compression Tools)
কমপ্রেশন এবং আর্কাইভ ফাইলের জন্য Batch Script এ 7zip বা WinRAR ব্যবহার করা যায়। এই সফটওয়্যারগুলো Batch Script এর মধ্যে ব্যবহারের জন্য কমান্ড লাইন অপশন প্রদান করে, যার মাধ্যমে আপনি ফাইল কম্প্রেস বা এক্সট্র্যাক্ট করতে পারেন।
উদাহরণ: 7zip দিয়ে ফাইল কম্প্রেস করা
7z a archive.zip *.txt
এটি বর্তমান ডিরেক্টরির সব .txt ফাইলগুলো archive.zip নামক একটি ZIP ফাইলে কম্প্রেস করবে।
- External Programs এবং Tools (e.g., curl, wget)
Batch Script এর মধ্যে আপনি বাহ্যিক প্রোগ্রাম এবং টুলস ব্যবহার করতে পারেন যেমন curl, wget, git, বা আপনার প্রয়োজনীয় অন্যান্য সফটওয়্যার।
উদাহরণ: wget দিয়ে ওয়েব পেজ ডাউনলোড
wget https://example.com/file.txt
এটি file.txt ফাইলটি example.com থেকে ডাউনলোড করবে।
- Batch Script এ External Command দিয়ে File Operations
বাহ্যিক কমান্ডের সাহায্যে আপনি Batch Script এর মধ্যে ফাইল অপারেশনও করতে পারেন, যেমন ফাইল কপি করা, সরানো, বা মুছে ফেলা।
উদাহরণ: robocopy দিয়ে ফাইল কপি করা
robocopy C:\Source C:\Destination /E
এটি C:\Source ফোল্ডার থেকে সমস্ত ফাইল এবং সাবফোল্ডার কপি করে C:\Destination ফোল্ডারে স্থানান্তর করবে।
External Command Integration Tips:
- যখন আপনি বাহ্যিক কমান্ড চালান, Batch Script অপেক্ষাকৃত ধীর হতে পারে, কারণ বাহ্যিক কমান্ড চালাতে কিছু সময় নেয়। আপনি start কমান্ড ব্যবহার করে বাহ্যিক কমান্ডকে ব্যাকগ্রাউন্ডে চালাতে পারেন যাতে স্ক্রিপ্টের মূল কাজের গতিতে প্রভাব না পড়ে।
উদাহরণ: বাহ্যিক কমান্ড ব্যাকগ্রাউন্ডে চালানো
start curl -O https://example.com/file.txt
- বাহ্যিক কমান্ডের আউটপুট পেতে for /f লুপ ব্যবহার করতে পারেন। এতে আপনি বাহ্যিক কমান্ডের আউটপুট স্ক্রিপ্টের মধ্যে প্রসেস করতে পারবেন।
উদাহরণ: ping কমান্ডের আউটপুট প্রসেস করা
for /f "tokens=*" %%a in ('ping 8.8.8.8') do echo %%a
সারাংশ
- External Commands ব্যবহার করে আপনি Batch Script এর কার্যক্ষমতা বাড়াতে পারেন এবং অন্য সফটওয়্যার বা টুলস এর ক্ষমতা কাজে লাগাতে পারেন।
- বিভিন্ন বাহ্যিক কমান্ড যেমন PowerShell, curl, ping, tasklist Batch Script এর মধ্যে ইন্টিগ্রেট করা যায় এবং তাদের মাধ্যমে একাধিক কার্য সম্পন্ন করা সম্ভব।
- বাহ্যিক কমান্ডের সাথে Batch Script এ ইন্টিগ্রেশন করার জন্য call, start, এবং for /f কমান্ড ব্যবহার করা যেতে পারে।
এই টেকনিকগুলি Batch Script এর ক্ষমতাকে আরও বৃদ্ধি করবে এবং আপনাকে আরও কার্যকরী স্ক্রিপ্ট তৈরি করতে সাহায্য করবে।
Batch Script এবং PowerShell দুটি আলাদা scripting language, তবে Batch Script-এ PowerShell কমান্ড ব্যবহার করা সম্ভব। PowerShell কমান্ডগুলো Batch Script-এ ইন্টিগ্রেট করে আপনি আরো শক্তিশালী এবং লাচ্ছন কমান্ড চালাতে পারেন, বিশেষ করে যখন PowerShell এর শক্তিশালী ফিচারগুলো যেমন, অবজেক্ট ম্যানিপুলেশন, পাইপলাইন প্রসেসিং, এবং অ্যাডভান্সড স্ক্রিপ্টিং প্রয়োজন হয়।
Batch Script-এ PowerShell কমান্ড ব্যবহার করার জন্য powershell কমান্ড ব্যবহার করা হয়। এটি PowerShell স্ক্রিপ্ট বা কমান্ড চালাতে সহায়তা করে।
PowerShell কমান্ড Batch Script-এ ব্যবহার করার গঠন
powershell -Command "<PowerShell_Command>"
এখানে, <PowerShell_Command> এর জায়গায় আপনি যে PowerShell কমান্ড বা স্ক্রিপ্ট চালাতে চান তা বসাবেন।
উদাহরণ ১: PowerShell কমান্ড দিয়ে কিছু প্রিন্ট করা
Batch Script থেকে PowerShell কমান্ড চালানোর সবচেয়ে সহজ উদাহরণ হল একটি সিম্পল আউটপুট প্রিন্ট করা:
@echo off
powershell -Command "Write-Output 'Hello from PowerShell!'"
pause
এই কমান্ডটি PowerShell-এ Write-Output কমান্ড ব্যবহার করে "Hello from PowerShell!" প্রিন্ট করবে।
আউটপুট:
Hello from PowerShell!
উদাহরণ ২: PowerShell এ ভেরিয়েবল ব্যবহার
PowerShell স্ক্রিপ্টে ভেরিয়েবল ব্যবহার করে Batch Script থেকে PowerShell কমান্ড চালানো:
@echo off
powershell -Command "$myVar='Hello from PowerShell'; Write-Output $myVar"
pause
এখানে, $myVar ভেরিয়েবলটি PowerShell-এ ডিফাইন করা হয়েছে এবং তারপর Write-Output দিয়ে তার মান প্রিন্ট করা হয়েছে।
আউটপুট:
Hello from PowerShell
উদাহরণ ৩: ফাইল থেকে ডেটা পড়া PowerShell দিয়ে
Batch Script থেকে ফাইলের ডেটা PowerShell দিয়ে পড়তে:
@echo off
powershell -Command "Get-Content 'C:\path\to\file.txt'"
pause
এটি file.txt ফাইলের কন্টেন্ট পড়বে এবং PowerShell এর মাধ্যমে কনসোলে আউটপুট হিসেবে দেখাবে।
উদাহরণ ৪: PowerShell দিয়ে একটি অ্যাডভান্সড কমান্ড চালানো
PowerShell কমান্ডে একাধিক কমান্ড একত্রিত করার জন্য, যেমন ফাইল তৈরি এবং ফাইলের মধ্যে কিছু লেখা:
@echo off
powershell -Command "New-Item -Path 'C:\path\to\file.txt' -ItemType File; Add-Content -Path 'C:\path\to\file.txt' -Value 'This is a test file created by PowerShell'"
pause
এখানে New-Item কমান্ড দিয়ে একটি নতুন ফাইল তৈরি করা হয়েছে এবং Add-Content কমান্ড ব্যবহার করে তার মধ্যে কিছু লেখা হয়েছে।
উদাহরণ ৫: PowerShell কমান্ডের আউটপুট ব্যবহার করা
Batch Script-এ PowerShell কমান্ডের আউটপুট ব্যবহার করতে হলে for /f লুপ ব্যবহার করতে পারেন:
@echo off
for /f "tokens=*" %%a in ('powershell -Command "(Get-Date).ToString()"') do (
echo Current Date and Time is: %%a
)
pause
এখানে, PowerShell এর Get-Date কমান্ড ব্যবহার করে বর্তমান তারিখ এবং সময় প্রাপ্ত করা হচ্ছে এবং সেটি Batch Script-এ for /f লুপের মাধ্যমে প্রিন্ট করা হচ্ছে।
আউটপুট:
Current Date and Time is: 11/29/2024 10:10:00 AM
উদাহরণ ৬: PowerShell কমান্ড থেকে ফাইল অপারেশন
PowerShell ব্যবহার করে Batch Script থেকে ফাইল কপি বা মুভ করা যেতে পারে:
@echo off
powershell -Command "Copy-Item 'C:\path\to\source.txt' -Destination 'C:\path\to\destination.txt'"
pause
এটি source.txt ফাইলটি destination.txt-এ কপি করবে।
উদাহরণ ৭: PowerShell স্ক্রিপ্ট রান করা
Batch Script থেকে একটি PowerShell স্ক্রিপ্ট চালানোর জন্য, আপনি PowerShell স্ক্রিপ্ট ফাইলের পাথ সরবরাহ করতে পারেন।
ধরা যাক, আপনার একটি PowerShell স্ক্রিপ্ট আছে script.ps1 নামের, Batch Script থেকে এটি চালানোর জন্য:
@echo off
powershell -ExecutionPolicy Bypass -File "C:\path\to\script.ps1"
pause
এখানে -ExecutionPolicy Bypass অপশনটি PowerShell স্ক্রিপ্টের জন্য Execution Policy কনফিগার করে দেয় যাতে স্ক্রিপ্ট চালানো যায়।
PowerShell এর সুবিধা Batch Script-এ
- অ্যাডভান্সড ফিচারস: PowerShell-এ অতিরিক্ত ফিচার যেমন অবজেক্ট ম্যানিপুলেশন, পাইপলাইন প্রসেসিং এবং অ্যাডভান্সড স্ক্রিপ্টিং Batch Script-এ নেই।
- প্ল্যাটফর্ম নিরপেক্ষ: PowerShell বিভিন্ন প্ল্যাটফর্মে কাজ করতে পারে (যেমন Linux, macOS, এবং Windows), যা Batch Script কেবল Windows-এ কাজ করে।
- এক্সটেনডেড কমান্ডস: PowerShell Batch Script-এ যেখানে মৌলিক ফাইল অপারেশন করা যায়, সেখানে PowerShell-এ আপনি আরো জটিল এবং শক্তিশালী কমান্ড ব্যবহার করতে পারেন।
সারাংশ
Batch Script-এ PowerShell কমান্ড ইন্টিগ্রেশন আপনাকে শক্তিশালী স্ক্রিপ্টিং ক্ষমতা প্রদান করে, যা সাধারণ Batch Script-এর সীমাবদ্ধতাগুলিকে অতিক্রম করে। PowerShell-এ উচ্চতর ক্ষমতা থাকা সত্ত্বেও, Batch Script থেকে সরাসরি PowerShell কমান্ড চালানোর মাধ্যমে আপনি প্রক্রিয়াগুলিকে আরও কার্যকর ও সুবিধাজনকভাবে বাস্তবায়ন করতে পারেন।
Batch Script-এ external programs এবং tools ব্যবহার করে আপনি আরও উন্নত এবং শক্তিশালী স্ক্রিপ্ট তৈরি করতে পারেন। অনেক সময় আমরা Batch Script-এর মাধ্যমে বিভিন্ন কমান্ড লাইন টুলস যেমন curl, wget, বা PowerShell ইত্যাদি ব্যবহার করি, যা Batch Script-এর কার্যক্ষমতা অনেক বাড়িয়ে তোলে। এগুলোর মাধ্যমে আপনি ইন্টারনেট থেকে ডেটা ডাউনলোড করা, API কল করা, বা অন্যান্য বহিরাগত প্রোগ্রাম চালাতে পারেন।
এখানে, আমরা curl এবং wget এর ব্যবহার উদাহরণসহ দেখবো।
১. curl ব্যবহার
curl একটি জনপ্রিয় কমান্ড-লাইন টুল, যা মূলত ডেটা ট্রান্সফার করতে ব্যবহৃত হয়। এটি HTTP, HTTPS, FTP, FTPS, SCP, SFTP সহ আরও অনেক প্রটোকল সাপোর্ট করে। Batch Script-এ curl ব্যবহার করে আপনি API থেকে ডেটা সংগ্রহ করতে বা HTTP রিকোয়েস্ট পাঠাতে পারেন।
উদাহরণ: Web API থেকে JSON ডেটা সংগ্রহ করা
ধরা যাক, আপনি একটি API থেকে JSON ডেটা সংগ্রহ করতে চান। নিচে একটি উদাহরণ দেখানো হয়েছে:
@echo off
curl -X GET https://jsonplaceholder.typicode.com/posts/1
pause
এখানে:
curl -X GETএকটি GET রিকোয়েস্ট পাঠাচ্ছে।- URL:
https://jsonplaceholder.typicode.com/posts/1থেকে API ডেটা আনা হচ্ছে।
আউটপুট:
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit ..."
}
২. wget ব্যবহার
wget একটি শক্তিশালী কমান্ড-লাইন টুল যা HTTP, HTTPS, এবং FTP প্রটোকলের মাধ্যমে ফাইল ডাউনলোড করতে ব্যবহৃত হয়। এটি curl এর মতোই ইন্টারনেট থেকে ফাইল ডাউনলোড বা ডেটা রিকোয়েস্ট করতে সক্ষম। তবে wget সাধারণত ফাইল ডাউনলোডের জন্য বেশি ব্যবহৃত হয়।
উদাহরণ: ফাইল ডাউনলোড করা
ধরা যাক, আপনি একটি ওয়েব পেজ বা ফাইল ডাউনলোড করতে চান।
@echo off
wget https://example.com/sample.txt
pause
এখানে:
- wget ব্যবহার করে
sample.txtফাইলটি ডাউনলোড করা হবে।
আউটপুট:
- এটি
sample.txtফাইলটি আপনার স্ক্রিপ্টের লোকেশন-এ ডাউনলোড করবে।
৩. curl দিয়ে POST রিকোয়েস্ট পাঠানো
curl ব্যবহার করে আপনি POST রিকোয়েস্টও পাঠাতে পারেন, যেটি সাধারণত ফর্ম ডেটা পাঠাতে ব্যবহৃত হয়।
উদাহরণ: POST রিকোয়েস্ট পাঠানো
@echo off
curl -X POST https://jsonplaceholder.typicode.com/posts ^
-H "Content-Type: application/json" ^
-d "{\"title\": \"foo\", \"body\": \"bar\", \"userId\": 1}"
pause
এখানে:
-X POST: POST রিকোয়েস্ট পাঠাতে ব্যবহৃত।-H "Content-Type: application/json": রিকোয়েস্টের হেডারেContent-Typeহিসেবে JSON টাইপ সেট করা হয়েছে।-d "{\"title\": \"foo\", \"body\": \"bar\", \"userId\": 1}": JSON ডেটা পাঠানো হয়েছে।
আউটপুট:
{
"title": "foo",
"body": "bar",
"userId": 1,
"id": 101
}
৪. Batch Script-এ curl বা wget ব্যবহার করার জন্য চেক করা
কখনও কখনও, আপনি চান যে স্ক্রিপ্টটি curl বা wget ব্যবহার করতে পারে, তবে আপনার সিস্টেমে এগুলো ইনস্টল করা না থাকলে, স্ক্রিপ্টটি চালানো সম্ভব হবে না। তাই আপনি প্রথমে চেক করতে পারেন, টুলটি আপনার সিস্টেমে ইনস্টল আছে কিনা। যদি না থাকে, তবে স্ক্রিপ্টটি বন্ধ করা বা ইউজারকে ইনস্টল করার নির্দেশ দেওয়া যেতে পারে।
উদাহরণ: curl ইনস্টল করা আছে কিনা চেক করা
@echo off
curl --version >nul 2>&1
if %errorlevel% neq 0 (
echo curl is not installed.
) else (
echo curl is installed.
)
pause
এখানে:
- curl --version কমান্ড দিয়ে curl ইনস্টল আছে কিনা চেক করা হচ্ছে।
- যদি curl ইনস্টল না থাকে, তাহলে একটি বার্তা দেখানো হবে।
৫. External Programs এবং Tools ব্যবহার করে ডেটা প্রক্রিয়াকরণ
Batch Script-এর মাধ্যমে curl বা wget এর মতো external tools ব্যবহার করে, আপনি সহজেই ওয়েব থেকে ডেটা ফেচ করে প্রক্রিয়া করতে পারেন। যেমন, আপনি একটি API থেকে ডেটা সংগ্রহ করতে পারেন, ফাইল ডাউনলোড করতে পারেন অথবা অন্য কোনো বহিরাগত সার্ভিসের সাথে ইন্টারঅ্যাক্ট করতে পারেন।
সারাংশ
Batch Script-এ external programs এবং tools যেমন curl এবং wget ব্যবহারের মাধ্যমে আপনি স্ক্রিপ্টকে আরও শক্তিশালী এবং কার্যকরী করে তুলতে পারেন। এগুলোর মাধ্যমে আপনি ইন্টারনেট থেকে ফাইল ডাউনলোড, API কল, বা অন্যান্য রিমোট সার্ভিসের সাথে যোগাযোগ করতে পারবেন। এক্ষেত্রে, সঠিকভাবে কমান্ড ব্যবহার করে আপনার Batch Script-কে বহিরাগত প্রোগ্রামের সাথে একত্রিত করতে পারবেন।
Shell Scripting এবং Batch Script উভয়ই কমান্ড-লাইন স্ক্রিপ্টিং ভাষা, কিন্তু এগুলোর ব্যবহারের পরিবেশ এবং উদ্দেশ্য ভিন্ন। Shell Scripting সাধারণত Linux এবং macOS অপারেটিং সিস্টেমে ব্যবহৃত হয়, যেখানে Batch Script মূলত Windows অপারেটিং সিস্টেমে ব্যবহৃত হয়। তবে অনেক সময় আপনি চাইতে পারেন এক স্ক্রিপ্টের মধ্যে Shell এবং Batch scripting এর সংমিশ্রণ ঘটাতে, বিশেষ করে যদি আপনাকে Windows এবং Linux/macOS উভয় পরিবেশে একই স্ক্রিপ্ট চালাতে হয়।
এখানে, আমরা আলোচনা করবো কিভাবে Shell Scripting এবং Batch Script একসাথে ব্যবহার করা যায় এবং তাদের মধ্যে ইন্টারঅ্যাকশন কীভাবে ঘটানো যেতে পারে।
১. Shell Scripting এবং Batch Script এর মধ্যে সংযোগ স্থাপন
যেহেতু Shell Scripting এবং Batch Script বিভিন্ন অপারেটিং সিস্টেমে কাজ করে, সেক্ষেত্রে দুটি আলাদা স্ক্রিপ্ট লিখতে হতে পারে, কিন্তু কিছু উপায়ে একে অপরের সাথে যোগাযোগ করতে পারে।
Windows Subsystem for Linux (WSL)
Windows Subsystem for Linux (WSL) ব্যবহার করে আপনি Windows মেশিনে Linux শেল স্ক্রিপ্ট চালাতে পারেন। WSL ইনস্টল করার মাধ্যমে আপনি Windows-এ Bash শেল ব্যবহার করতে পারবেন এবং সেখানে Shell Scripting লিখে চালাতে পারবেন।
WSL ব্যবহার করে Batch Script এবং Shell Script একসাথে ব্যবহার করার একটি সাধারণ উদাহরণ:
উদাহরণ: WSL দিয়ে Shell Script চালানো
@echo off
echo Running Linux Shell Script from Batch Script...
wsl bash -c "./path/to/shell-script.sh"
pause
এখানে:
wsl bash -cকমান্ড দিয়ে আপনি Windows থেকে Linux শেল স্ক্রিপ্ট চালাতে পারেন।"./path/to/shell-script.sh"হলো শেল স্ক্রিপ্টের পাথ যা আপনি WSL এর মধ্যে চালাতে চান।
এভাবে আপনি Windows এর Batch Script দিয়ে Linux এর Shell Script চালাতে পারবেন।
২. Windows থেকে Shell Script-এ ইন্টারঅ্যাকশন
এছাড়া, কখনও কখনও Batch Script এবং Shell Script একে অপরের সাথে ইন্টারঅ্যাক্ট করতে পারে। উদাহরণস্বরূপ, Batch Script দিয়ে Shell Script-এর ইনপুট পাস করা বা Shell Script থেকে আউটপুট ব্যবহার করা।
উদাহরণ: Batch Script দিয়ে Shell Script-এ ইনপুট পাঠানো
@echo off
echo "Hello from Batch Script" > input.txt
wsl bash -c "cat input.txt"
pause
এখানে:
- Batch Script প্রথমে একটি ফাইল তৈরি করে যার মধ্যে কিছু টেক্সট রাখা হয়।
- তারপর WSL ব্যবহার করে Bash শেল স্ক্রিপ্টের মাধ্যমে সেই ফাইলটি পড়া হয়।
এভাবে Batch Script দিয়ে Shell Script-এর ইনপুট পাঠানো যেতে পারে এবং আউটপুট ব্যবহার করা যেতে পারে।
৩. Shell Scripting থেকে Batch Script কল করা
এছাড়া, যদি আপনার প্রয়োজন হয় যে Shell Script থেকে Batch Script চালানো, তবে আপনি সহজেই cmd.exe বা powershell কমান্ড ব্যবহার করে এটি করতে পারবেন।
উদাহরণ: Shell Script থেকে Batch Script কল করা
#!/bin/bash
echo "Running Batch Script from Shell Script..."
cmd.exe /c "path\to\your-batch-script.bat"
এখানে:
cmd.exe /cকমান্ড দিয়ে আপনি একটি Batch Script চালাতে পারেন, যা Shell Script থেকে কল করা হচ্ছে।
এভাবে আপনি Shell Script থেকে Batch Script কল করতে পারবেন।
৪. Mixed Scripting Example: Windows এবং Linux উভয় পরিবেশে কাজ করা
ধরা যাক, আপনি একটি স্ক্রিপ্ট তৈরি করতে চান যা Windows এবং Linux উভয় পরিবেশে কাজ করবে। এটি করার জন্য আপনি কিছু কমান্ড ফাংশন তৈরি করতে পারেন যা উভয় সিস্টেমের জন্য উপযুক্ত হবে।
উদাহরণ: Cross-Platform Scripting
@echo off
echo "Checking Operating System..."
:: Check if WSL is available (Linux)
wsl uname -a >nul 2>&1
if %errorlevel%==0 (
echo "Running on Linux. Executing Shell Script..."
wsl bash -c "./linux-script.sh"
) else (
echo "Running on Windows. Executing Batch Script..."
call windows-script.bat
)
pause
এখানে:
- প্রথমে চেক করা হচ্ছে, WSL (Windows Subsystem for Linux) ইনস্টল আছে কিনা।
- যদি WSL ইনস্টল থাকে, তবে Shell Script চালানো হবে।
- যদি WSL ইনস্টল না থাকে, তবে Batch Script চালানো হবে।
এভাবে, আপনি একই স্ক্রিপ্ট দিয়ে উভয় অপারেটিং সিস্টেমে (Windows এবং Linux) কার্যকরভাবে কাজ করতে পারবেন।
৫. Shell Scripting এবং Batch Script এর মধ্যে পরিবেশ ভিন্নতা
যদিও Shell Scripting এবং Batch Script একসাথে ব্যবহার করা সম্ভব, তবে কিছু পার্থক্য মনে রাখতে হবে:
- Batch Script Windows-এর জন্য ডিজাইন করা হয়েছে এবং এটি Windows কমান্ড লাইনে চলে।
- Shell Scripting সাধারণত Linux বা macOS-এ ব্যবহৃত হয় এবং UNIX-like অপারেটিং সিস্টেমে চলে।
- দুটি স্ক্রিপ্টিং ভাষা ভিন্ন সিনট্যাক্স এবং কমান্ড ব্যবহার করে, তবে তাদের মধ্যে কিছু মৌলিক ফাংশনালিটি ভাগ করে নেওয়া যায় (যেমন ফাইল অপারেশন, টেক্সট প্রসেসিং ইত্যাদি)।
এ কারণে, উভয় সিস্টেমে স্ক্রিপ্ট তৈরি করার সময় আপনাকে পরিবেশের উপর ভিত্তি করে সঠিক কমান্ড ব্যবহার করতে হবে।
সারাংশ
Batch Script এবং Shell Script একসাথে ব্যবহার করার মাধ্যমে আপনি Windows এবং Linux সিস্টেমে কার্যক্ষম স্ক্রিপ্ট তৈরি করতে পারেন। Windows Subsystem for Linux (WSL) ব্যবহার করে Batch Script থেকে Shell Script চালানো সম্ভব, অথবা উল্টোভাবে, Shell Script থেকে Batch Script কল করা যেতে পারে। এইভাবে, আপনি একাধিক প্ল্যাটফর্মে কার্যকরী স্ক্রিপ্ট তৈরি করতে পারেন, যা আপনার কাজের প্রক্রিয়াকে আরও সহজ এবং দক্ষ করে তুলবে।
Windows Management Instrumentation (WMI) হল একটি শক্তিশালী টুল যা উইন্ডোজ অপারেটিং সিস্টেমের মাধ্যমে হার্ডওয়্যার এবং সফটওয়্যার উপাদানগুলোর তথ্য প্রাপ্তি, পরিচালনা এবং পর্যবেক্ষণের জন্য ব্যবহৃত হয়। এটি উইন্ডোজ সিস্টেমের বিভিন্ন তথ্য যেমন সিস্টেম কনফিগারেশন, হার্ডওয়্যার অবস্থা, সফটওয়্যার ইনস্টলেশন, নেটওয়ার্ক সেটিংস, এবং অন্যান্য সিস্টেম সম্পর্কিত তথ্য সংগ্রহ করতে ব্যবহৃত হয়।
Batch Script-এ WMI কমান্ড ব্যবহার করে আপনি সহজেই সিস্টেমের বিভিন্ন তথ্য যেমন সিপিইউ, মেমোরি, ডিস্ক, নেটওয়ার্ক ইন্টারফেস ইত্যাদি সম্পর্কে জানতে পারবেন। WMI কমান্ডগুলি মূলত WMIC (Windows Management Instrumentation Command-line) ব্যবহার করে চালানো হয়, যা উইন্ডোজ কমান্ড প্রম্পটে একটি ইউটিলিটি হিসেবে উপলব্ধ।
WMI কমান্ড ব্যবহার করার জন্য কিছু সাধারণ উদাহরণ:
১. System Information সংগ্রহ করা
আপনি সিস্টেম সম্পর্কিত বিভিন্ন তথ্য বের করতে WMI কমান্ড ব্যবহার করতে পারেন। উদাহরণস্বরূপ, নিচের কোডটি আপনার সিস্টেমের মডেল এবং সিরিয়াল নম্বর বের করবে।
wmic bios get manufacturer, version, serialnumber
ব্যাখ্যা:
wmic bios get manufacturer, version, serialnumber
এই কমান্ডটি BIOS সম্পর্কিত তথ্য যেমন ম্যানুফ্যাকচারার, ভার্সন এবং সিরিয়াল নাম্বার বের করবে।
আউটপুট:
Manufacturer Version SerialNumber
Dell Inc. 1.7.0 ABC123XYZ
২. CPU তথ্য বের করা
CPU সম্পর্কিত তথ্য বের করতে নিচের WMI কমান্ড ব্যবহার করা হয়:
wmic cpu get caption, deviceid, numberofcores, maxclockspeed
ব্যাখ্যা:
wmic cpu get caption, deviceid, numberofcores, maxclockspeed
এই কমান্ডটি আপনার সিপিইউ এর মডেল নাম (caption), ডিভাইস আইডি, কোর সংখ্যা, এবং সর্বোচ্চ ক্লক স্পিড বের করবে।
আউটপুট:
Caption DeviceID NumberOfCores MaxClockSpeed
Intel(R) Core(TM) i7-8550U CPU0 4 4000
৩. RAM তথ্য বের করা
সিস্টেমের র্যাম সম্পর্কিত তথ্য বের করতে নিচের কমান্ডটি ব্যবহার করা হয়:
wmic memorychip get capacity, devicelocator, memorytype
ব্যাখ্যা:
wmic memorychip get capacity, devicelocator, memorytype
এই কমান্ডটি সিস্টেমের র্যাম এর ক্ষমতা (Capacity), ডিভাইস লোকেটর এবং র্যাম এর টাইপ (যেমন DDR4 বা DDR3) বের করবে।
আউটপুট:
Capacity DeviceLocator MemoryType
8589934592 DIMM1 24
৪. ডিস্ক ড্রাইভ সম্পর্কিত তথ্য
আপনি যদি ডিস্ক ড্রাইভ সম্পর্কিত তথ্য বের করতে চান, তবে এই কমান্ড ব্যবহার করা যেতে পারে:
wmic diskdrive get model, size, serialnumber
ব্যাখ্যা:
wmic diskdrive get model, size, serialnumber
এই কমান্ডটি ডিস্ক ড্রাইভের মডেল, আকার এবং সিরিয়াল নম্বর সম্পর্কে তথ্য প্রদান করবে।
আউটপুট:
Model Size SerialNumber
Samsung SSD 860 5001078624 ABCD1234
৫. Network Adapter তথ্য
নেটওয়ার্ক অ্যাডাপ্টারের তথ্য বের করতে এই কমান্ড ব্যবহার করা হয়:
wmic nic get name, macaddress, speed
ব্যাখ্যা:
wmic nic get name, macaddress, speed
এই কমান্ডটি আপনার সিস্টেমের নেটওয়ার্ক অ্যাডাপ্টার এর নাম, MAC ঠিকানা এবং স্পিড বের করবে।
আউটপুট:
Name MACAddress Speed
Intel(R) Ethernet 00-1A-2B-3C-4D-5E 1000000000
৬. Operating System সম্পর্কিত তথ্য
উইন্ডোজ অপারেটিং সিস্টেমের সংস্করণ এবং বিল্ড নম্বর বের করতে এই কমান্ড ব্যবহার করা হয়:
wmic os get caption, version, buildnumber
ব্যাখ্যা:
wmic os get caption, version, buildnumber
এই কমান্ডটি উইন্ডোজের সংস্করণ এবং বিল্ড নাম্বার বের করবে।
আউটপুট:
Caption Version BuildNumber
Microsoft Windows 10 10.0.19045 19045
৭. Running Processes এর তথ্য
সিস্টেমে চলমান প্রক্রিয়া বা প্রসেসগুলোর তথ্য বের করতে এই কমান্ড ব্যবহার করা হয়:
wmic process get caption, processid, commandline
ব্যাখ্যা:
wmic process get caption, processid, commandline
এই কমান্ডটি সিস্টেমে চলমান প্রসেসের নাম, প্রসেস আইডি এবং কমান্ড লাইন আর্গুমেন্ট বের করবে।
আউটপুট:
Caption ProcessID CommandLine
explorer.exe 1234 C:\Windows\explorer.exe
cmd.exe 5678 C:\Windows\System32\cmd.exe
সারাংশ
WMI (Windows Management Instrumentation) কমান্ড হল একটি শক্তিশালী টুল যা উইন্ডোজ সিস্টেমের হার্ডওয়্যার এবং সফটওয়্যার উপাদানগুলোর তথ্য সংগ্রহ এবং পরিচালনা করতে ব্যবহৃত হয়। Batch Script-এ WMI কমান্ড ব্যবহার করে আপনি সিস্টেমের বিস্তারিত তথ্য যেমন সিপিইউ, র্যাম, ডিস্ক, নেটওয়ার্ক অ্যাডাপ্টার এবং অন্যান্য হার্ডওয়্যার, সফটওয়্যার স্ট্যাটাস সংগ্রহ করতে পারেন। এই কমান্ডগুলি সিস্টেম প্রশাসনের জন্য বিশেষভাবে উপকারী, এবং Batch Script-এ ডেটা সংগ্রহ এবং প্রসেসিংয়ের জন্য খুবই কার্যকরী।
Read more